package main

import "fmt"

// ==========内置函数==========

func change(variable *int) { // 形参variable是一个指向整数的指针
	*variable = 100 // 用*来获取指针所指向的地址并修改值
}

func main() {
	// 内置函数new(), 用来分配内存, 主要用来分配值类型
	a := new(int)                              // 变量a是一个指针
	fmt.Printf("变量a的数据类型= %T\n", a)            // *int
	fmt.Printf("变量a的值= %v\n", a)               // 0xc00008c008
	fmt.Printf("变量a的地址= %v\n", &a)             // 0xc000086018
	fmt.Printf("变量a的值所指向的地址里面存储的数据= %v\n", *a) // 0, 默认值
	change(a)
	fmt.Printf("修改后的值是%v\n", *a)
	/*
		内存分析
		          0xc000086018            0xc00008c008
		          --------------          -------------
		         |              |        |             |
		a -----> | 0xc00008c008 | -----> |      0      |
		         |              |        |             |
		          --------------          -------------
	*/

	// 内置函数make(), 用来分配内存, 主要用来分配引用类型
}
